在使用npm安装包时, 有两种模式,一种本地模式(不带参数-g),一种全局模式。

默认情况下,不带参数-g的install命令采用的就是本地模式,包将会安装在子目录node_modules下。Node.js的require在加载模块时会尝试搜寻该目录,因此使用本地模式安装的包可以被直接引用。

如果加了参数-g,例如:

npm [install/i] -g [packege_name]

npm 会将包安装到系统目录,譬如 /usr/local/lib/node_modules/,同时 package.json 文 件中 bin 字段包含的文件会被链接到 /usr/local/bin/。/usr/local/bin/ 是在PATH 环境变量中默认 定义的,因此就可以直接在命令行中运行 supervisor script.js命令了。

为什么要使用全局模式呢?多数时候并不是因为许多程序都有可能用到它,为了减少多重副本而使用全局模式,而是因为本地模式不会注册 PATH 环境变量。


MockingBird
5.8k 声望743 粉丝